package com.dragon.modules.yuegou.enums.system;

import com.fasterxml.jackson.annotation.JsonCreator;

import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * 应用类型
 * 
 * @author pbuilder generated
 *
 */
public enum FeedbackType {

	/**
	 * 悦购
	 */
	YGIRL(0, "悦购"),
	/**
	 * 悦荷包
	 */
	WALLET(1, "悦荷包"),
	/**
	 * 悦商管
	 */
	YSQ(2, "悦商管"),
	/**
	 * 悦商惠
	 */
	YSH(3, "悦商惠"),
	/**
	 * 员工版
	 */
	YGB(4, "员工版"),
	/**
	 * 安卓
	 */
	ANDROID(5, "安卓"),
	/**
	 * 苹果
	 */
	IOS(6, "苹果"),
	/**
	 * 大运营版
	 */
	PLATFORM(7, "大运营版"),
	/**
	 * 集团版
	 */
	GROUP(8, "集团版"),
	/**
	 * 支付宝小程序
	 */
	ALIXCX(9, "支付宝小程序");

	/**
	 * 枚举标识
	 */
	private final Integer code;

	/**
	 * 别名
	 */
	private final String alias;

	private FeedbackType(Integer code, String alias) {
		this.code = code;
		this.alias = alias;
	}

	public Integer getValue() {
		return code;
	}

	/**
	 * 枚举标识
	 * 
	 * @return code
	 */
	public Integer getCode() {
		return code;
	}

	/**
	 * 别名
	 * 
	 * @return alias
	 */
	public String getAlias() {
		return alias;
	}

	/**
	 * 把code转化为费用类型枚举
	 * 
	 * @param code 代码
	 * @return
	 */
	@JsonCreator
	public static FeedbackType from(Integer code) {
		if (code == null) {
			return null;
		}
		return CODE_MAP.get(code);
	}

	/**
	 * Code Map for FeedbackType
	 */
	private static final Map<Integer, FeedbackType> CODE_MAP = Stream.of(FeedbackType.values())
			.collect(Collectors.toMap(FeedbackType::getCode, e -> e));

}
